using Client.Base;
using System;

namespace Client.Hotfix
{
    [AttributeUsage(AttributeTargets.Class, Inherited = false)]
    public class PrefabAttribute : Attribute
    {
        public string Prefab { get; }
        public UILayer Layer { get; }
        public int SubIndex { get; }
        public PrefabAttribute(string prefab)
        {
            Prefab = prefab;
        }
        public PrefabAttribute(string prefab, int subIndex = 0)
        {
            Prefab = prefab;
            SubIndex = subIndex;
        }
        public PrefabAttribute(string prefab, UILayer layer, int subIndex = 0)
        {
            Prefab = prefab;
            Layer = layer;
            SubIndex = subIndex;
        }
    }

    [AttributeUsage(AttributeTargets.Class, Inherited = false)]
    public class ShowLoadingAttribute : Attribute
    {
        public bool Boolen { get; }

        public ShowLoadingAttribute(bool boolen)
        {
            Boolen = boolen;
        }
    }

    [AttributeUsage(AttributeTargets.Class, Inherited = false)]
    public class SSMAttribute : Attribute
    {
        /// <summary>
        /// ֵԽ��Ȩ��Խ��
        /// </summary>
        public SSMWeight Weight { get; }
        public SSMAttribute(SSMWeight weight)
        {
            Weight = weight;
        }
    }

    [AttributeUsage(AttributeTargets.Class, Inherited = false)]
    public class APIAttribute : Attribute
    {
        public string api { get; }
        public APIAttribute(string api)
        {
            this.api = api;
        }
    }

    [AttributeUsage(AttributeTargets.Class, Inherited = false)]
    public class CModuleAttribute : Attribute
    {
        public CModuleAttribute()
        {
        }
    }

}